package com.weimob.mcloud.wechatwork.customer.service;

import com.weimob.mcloud.wechatwork.core.adapter.pojo.dto.channel.request.tag.CorpTagGroupAdapterDTO;
import com.weimob.mcloud.wechatwork.core.adapter.pojo.dto.channel.request.tag.MarkCropTagDTO;
import com.weimob.mcloud.wechatwork.core.entity.privatesphere.PrivateSphere;
import com.weimob.mcloud.wechatwork.customer.domain.dto.CorpExternalUserTag;
import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.tag.v2.CorpTagGroupDTO;
import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.tag.v2.DelCorpTagDTO;
import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.tag.v2.EditCorpTagOrGroup;
import com.weimob.soa.common.response.SoaResponse;

/**
 * @author junlong.lv
 * @version 1.0
 * @date 2022/3/11 2:40 下午
 */
public interface ChannelTagService {

    SoaResponse<CorpTagGroupAdapterDTO, Void> addCorpTag(CorpTagGroupDTO corpTagGroupDTO, PrivateSphere responseVo);

    SoaResponse<Boolean, ?> editCorpTag(EditCorpTagOrGroup editCorpTagOrGroup, PrivateSphere responseVo);

    SoaResponse<Boolean, ?> delCorpTag(DelCorpTagDTO delCorpTagDTO, PrivateSphere responseVo);

    Boolean addUserTag(CorpExternalUserTag corpExternalUserTag, PrivateSphere responseVo);

    /**
     * @param corpExternalUserTag
     * @param taskId
     * @param type                离线(offline)/实时(realtime) 打标类别
     * @return
     */
    SoaResponse<MarkCropTagDTO, Void> addUserTagV2(CorpExternalUserTag corpExternalUserTag, Long taskId, String type);
}
